package com.hanamaki.study.day02;

import javafx.stage.Screen;
import org.openqa.selenium.*;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.support.ui.Select;
import org.testng.annotations.AfterMethod;
import org.testng.annotations.BeforeMethod;
import org.testng.annotations.Test;

import java.io.File;
import java.io.IOException;
import java.util.List;

import org.apache.commons.io.*;

public class SeleniumUploadFileScreenPng05 {

    //注册驱动
    WebDriver driver;

    // 导航对象
    WebDriver.Navigation navigation;

    @BeforeMethod
    public void setUp() {

        //注册本地火狐打开的位置
        System.setProperty("webdriver.gecko.driver", "C:\\Program Files\\Mozilla Firefox\\geckodriver.exe");
        //初始化
        driver = new FirefoxDriver();

        navigation = driver.navigate();
    }

    @Test
    public void test() throws InterruptedException, IOException {
        /* 注册 浏览器打开的 资源路径 */
        driver.get("file:///C:/Users/Administrator/Desktop/testhtml/exam/House.html");

        /* 想要上传文件 首先 需要对上传的按钮进行 元素 定位 */
        WebElement fileUpload = driver.findElement(By.xpath("//input[@type='file']"));
        /* 想要将文件通过自动的方式去提交 需要 对 文件域 标签进行 sendKeys 将文件的路径写入 文件域标签中 */

        /* 文件路径 */
        String filePath = "D:\\javaSpace\\ideaSpace\\JavaPageSources\\selenium-maven-study\\src\\main\\java\\com\\hanamaki\\study\\day02\\SeleniumTemplate1.java";
        /* IO流  File  */
        File file = new File(filePath);
        boolean exists = file.exists();
        if (exists) {
            fileUpload.sendKeys(filePath);
        } else {
            file.createNewFile();
            fileUpload.sendKeys(filePath);
        }


        /* 截图  */
        /* 将 驱动对象 墙砖为 TakesScreenshot */
        File screenshotAs = ((TakesScreenshot) driver).getScreenshotAs(OutputType.FILE);
        /* 在 Java中 可以使用 工具类 将 文件保存到本地中 */
        FileUtils.copyFile(screenshotAs, new File("d:\\image.png"));

    }


    @AfterMethod
    public void close() {
//        driver.close();
    }
}
